VMware ESX

VMware ESX
Developer(s) VMware, Inc.
Stable release 5.0 (build 469512) / August 24, 2011; 5 months ago (2011-08-24)[1]
Platform x86 (discontinued in 4.0 onwards)[2], x86-64
Type Virtual machine monitor
License Proprietary
Website VMware ESX

VMware ESX is an enterprise-level computer virtualization product offered by VMware, Inc. ESX is a component of VMware's larger offering, VMware Infrastructure, and adds management and reliability services to the core server product. The original ESX is being replaced by ESXi.

VMware ESX and VMware ESXi are bare-metal embedded hypervisors that are VMware's enterprise software hypervisors for servers that run directly on server hardware without requiring an additional underlying operating system.[3]

The basic server requires some form of persistent storage (typically an array of hard disk drives) for storing the hypervisor and support files. A smaller footprint variant, ESXi, does away with the first requirement by permitting placement of the hypervisor onto a dedicated compact storage device. Both variants support the services offered by VMware Infrastructure.[4]

Contents

Naming

ESX allegedly stands for "Elastic Sky X".[5]

Technical description

VMware, Inc. refers to the hypervisor used by VMware ESX as "vmkernel".

Architecture

VMware states that the ESX product runs on "bare metal".[6] In contrast to other VMware products, it does not run atop a third-party operating system,[7] but instead includes its own kernel. Up through the current ESX version 5.0, a Linux kernel is started first,[8] and is used to load a variety of specialized virtualization components, including VMware's vmkernel component. This previously-booted Linux kernel then becomes the first running virtual machine and is called the service console. Thus, at normal run-time, the vmkernel is running on the bare computer and the Linux-based service console runs as the first virtual machine.

The vmkernel itself, which VMware says is a microkernel,[9] has three interfaces to the outside world:

Interface to hardware

The vmkernel handles CPU and memory directly, using scan-before-execution (SBE) to handle special or privileged CPU instructions[10] and the SRAT (system resource allocation table) to track allocated memory.[11]

Access to other hardware (such as network or storage devices) takes place using modules. At least some of the modules derive from modules used in the Linux kernel. To access these modules, an additional module called vmklinux implements the Linux module interface. According to the README file, "This module contains the Linux emulation layer used by the vmkernel."[12]

The vmkernel uses the device drivers:[12]

  1. net/e100
  2. net/e1000
  3. net/e1000e
  4. net/bnx2
  5. net/tg3
  6. net/forcedeth
  7. net/pcnet32
  8. block/cciss
  9. scsi/adp94xx
  10. scsi/aic7xxx
  11. scsi/aic79xx
  12. scsi/ips
  13. scsi/lpfcdd-v732
  14. scsi/megaraid2
  15. scsi/mptscsi_2xx
  16. scsi/qla2200-v7.07
  17. scsi/megaraid_sas
  18. scsi/qla4010
  19. scsi/qla4022
  20. scsi/vmkiscsi
  21. scsi/aacraid_esx30
  22. scsi/lpfcdd-v7xx
  23. scsi/qla2200-v7xx

These drivers mostly equate to those described in VMware's hardware compatibility list.[13] All these modules fall under the GPL. Programmers have adapted them to run with the vmkernel: VMware Inc has changed the module-loading and some other minor things.[12]

Datacenter

Large companies might use datacenter for hosts and virtual machines as a primary container. Multiple datacenters can be used to represent organizational or business units.

Service console

The Service Console is a vestigial general purpose operating system most significantly used as bootstrap for the VMware kernel, vmkernel, and secondarily used as a management interface. Both of these Console Operating System functions are being deprecated as VMware migrates to exclusively the 'embedded' ESX model, current version being ESXi.[14] The Service Console, for all intents and purposes, is the operating system used to interact with VMware ESX and the virtual machines that run on the server.

Linux dependencies

ESX uses a Linux kernel to load additional code: often referred to by VMware, Inc. as the "vmkernel". The dependencies between the "vmkernel" and the Linux part of the ESX server have changed drastically over different major versions of the software. The VMware FAQ[15] states: "ESX Server also incorporates a service console based on a Linux 2.4 kernel that is used to boot the ESX Server virtualization layer". The Linux kernel runs before any other software on an ESX host.[8] On ESX versions 1 and 2, no VMkernel processes run on the system during the boot process.[16] After the Linux kernel has loaded, the S90vmware script loads the vmkernel.[16] VMware Inc states that vmkernel does not derive from Linux, but acknowledges that it has adapted certain device-drivers from Linux device drivers. The Linux kernel continues running, under the control of the vmkernel, providing functions including the proc file system used by the ESX and an environment to run support applications.[16] ESX version 3 loads the VMkernel from the Linux initrd, thus much earlier in the boot-sequence than in previous ESX versions.

In traditional systems, a given operating system runs a single kernel. The VMware FAQ mentions that ESX has both a Linux 2.4 kernel and vmkernel — hence confusion over whether ESX has a Linux base. An ESX system starts a Linux kernel first, but it loads vmkernel (also described by VMware as a kernel), which according to VMware 'wraps around' the linux kernel, and which (according to VMware Inc) does not derive from Linux.

The ESX userspace environment, known as the "Service Console" (or as "COS" or as "vmnix"), derives from a modified version of Red Hat Linux, (Red Hat 7.2 for ESX 2.x and Red Hat Enterprise Linux 3 for ESX 3.x). In general, this Service Console provides management interfaces (CLI, webpage MUI, Remote Console). This VMware ESX hypervisor virtualization approach provides lower overhead and better control and granularity for allocating resources (CPU-time, disk-bandwidth, network-bandwidth, memory-utilization) to virtual machines, compared to so-called "hosted" virtualization, where a base OS handles the physical resources. It also increases security.

As a further detail which differentiates the ESX from other VMware virtualization products: ESX supports the VMware proprietary cluster file system VMFS. VMFS enables multiple hosts to access the same SAN LUNs simultaneously, while file-level locking provides simple protection to file-system integrity.

Purple Screen of Death

In the event of a hardware error, the vmkernel can 'catch' a Machine Check Exception.[17] This results in an error message displayed on a purple console screen. This is colloquially known as a PSOD, or Purple Screen of Death (cf. Blue Screen of Death).

Upon displaying a PSOD, the vmkernel writes debug information to the core dump partition. This information, together with the error codes displayed on the PSOD can be used by VMware support to determine the cause of the problem.

Live migration

Live migration (vMotion) in ESX allows a virtual machine to move between two different hosts. Live storage migration (Storage vMotion) enables live migration of virtual disks on the fly. [18]

Related products

The following products operate in conjunction with ESX:

VMware ESX

Version release history:

VMware ESX 1.5

VMware ESX 2.0 (July 21, 2003)

VMware ESX 2.5 (December 14, 2004)

VMware Infrastructure 3.0 (VI3) (June 5, 2006)

VMware vSphere 4.0 (May 20, 2009)

July 18, 2010 vSphere 4.1 and its subsequent update and patch releases are the last releases to include both ESX and ESXi hypervisor architectures. Future major releases of VMware vSphere will include only the VMware ESXi architecture. For this reason, VMware recommends that deployments of vSphere 4.x utilize the ESXi hypervisor architecture.

VMware ESXi

VMware ESXi
Developer(s) VMware, Inc.
Stable release 5.0 (build 456551) / August 24, 2011; 5 months ago (2011-08-24)[21]
Platform x64-compatible
Type Virtual machine monitor
License Proprietary
Website VMware ESXi

VMware ESXi is a smaller footprint version of ESX that does not include ESX's Service Console. It is available as a free download from VMware though certain features are disabled[22] without the purchase of a vCenter license.

VMware ESXi was originally a compact version of VMware ESX that allowed for a smaller 32 MB disk footprint on the Host. With a simple configuration console for mostly network configuration and remote based VMware Infrastructure Client Interface, this allows for more resources to be dedicated to the Guest environments.

There are two variations of ESXi, VMware ESXi Installable and VMware ESXi Embedded Edition. It has the ability to upgrade to VMware Infrastructure 3[23] or VMware vSphere 4.0 ESXi.

Originally named VMware ESX Server ESXi edition, through several revisions, finally becoming VMware ESXi 3. New editions then followed ESXi 3.5, ESXi 4 and now ESXi 5.

Version release history:

Known limitations

Known limitations of VMware ESX, as of May 2009, include the following:

Infrastructure limitations

Some limitations in ESX Server 4 may constrain the design of data centers:[24][25]

Performance limitations

In terms of performance, virtualization imposes a cost in the additional work the CPU has to perform to virtualize the underlying hardware. Instructions that perform this extra work, and other activities that require virtualization, tend to lay in operating system calls. In an unmodified operating system, OS calls introduce the greatest portion of virtualization "overhead".

Paravirtualization or other virtualization techniques may help with these issues. VMware invented the Virtual Machine Interface for this purpose, and selected operating systems currently support this. A comparison between full virtualization and paravirtualization for the ESX Server[27] shows that in some cases paravirtualization is much faster.

See also

References

  1. ^ "VMware ESX 5.0". VMware, Inc.. http://www.vmware.com/support/pubs/vsphere-esxi-vcenter-server-pubs.html. 
  2. ^ "VMware ESX 4.0 only installs and runs on servers with 64bit x86 CPUs. 32bit systems are no longer supported.". VMware, Inc.. http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1009080. 
  3. ^ "ESX Server Architecture". Vmware.com. http://www.vmware.com/support/esx21/doc/esx21_admin_system_architecture.html. Retrieved 2009-10-22. 
  4. ^ "Meet the Next Generation of Virtual Infrastructure Technology". VMware. http://www.vmware.com/vmworldnews/esx.html. Retrieved 2007-09-21. 
  5. ^ "Glossary". Developer’s Guide to Building vApps and Virtual Appliances: VMware Studio 2.5. Palo Alto: VMware Inc. 2011. p. 153. http://www.vmware.com/support/developer/studio/studio25/studio_developer.pdf. Retrieved 2011-11-09. "ESXi[:] Elastic Sky X (ESX) pared down to a bare-metal server [...]" 
  6. ^ "ESX Server Datasheet"
  7. ^ "ESX Server Architecture". Vmware.com. Archived from the original on September 29, 2007. http://web.archive.org/web/20070929084239/http://www.vmware.com/support/esx21/doc/esx21_admin_system_architecture.html. Retrieved 2009-07-01. 
  8. ^ a b "ESX machine boots". Video.google.com.au. 2006-06-12. http://video.google.com.au/videoplay?docid=-8007161406494547506. Retrieved 2009-07-01. 
  9. ^ "Support for 64-bit Computing". Vmware.com. 2004-04-19. http://www.vmware.com/company/news/releases/64bit.html. Retrieved 2009-07-01. 
  10. ^ Gerstel, Markus: "Virtualisierungsansätze mit Schwepunkt Xen"
  11. ^ "VMware ESX Server 2: NUMA Support". Palo Alto, California: VMware Inc. 2005. p. 7. http://www.vmware.com/pdf/esx2_NUMA.pdf. Retrieved 2011-03-29. "SRAT (system resource allocation table) - table that keeps track of memory allocated to a virtual machine." 
  12. ^ a b c "ESX Server Open Source". Vmware.com. http://www.vmware.com/download/open_source.html. Retrieved 2009-07-01. 
  13. ^ "ESX Hardware Compatibility List". Vmware.com. 2008-12-10. http://www.vmware.com/resources/techresources/cat/119. Retrieved 2009-07-01. 
  14. ^ "ESXi vs. ESX: A comparison of features". Vmware, Inc. http://blogs.vmware.com/esxi/2009/06/esxi-vs-esx-a-comparison-of-features.html. Retrieved 2009-06-01. 
  15. ^ VMware FAQ
  16. ^ a b c ESX Server Advanced Technical Design Guide
  17. ^ "KB: Decoding Machine Check Exception (MCE) output after a purple screen error|publisher=VMware, Inc."
  18. ^ The Design and Evolution of Live Storage Migration in VMware ESX
  19. ^ http://www.vmware.com/files/pdf/VMware-VMotion-DS-EN.pdf
  20. ^ http://www.vmware.com/files/pdf/VMware-Storage-VMotion-DS-EN.pdf
  21. ^ "VMware vSphere 5.0 Release Notes". VMware, Inc.. http://www.vmware.com/support/vsphere5/doc/vsphere-esx-vcenter-server-50-release-notes.html. 
  22. ^ "VMware ESX and ESXi 4.1 Comparison". Vmware.com. http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1023990. Retrieved 2011-06-09. 
  23. ^ "Free VMware ESXi: Bare Metal Hypervisor with Live Migration". Vmware.com. http://www.vmware.com/products/esxi/. Retrieved 2009-07-01. 
  24. ^ a b "Configuration Maximums" (PDF). VMware, Inc.. 2010-07-13. http://www.vmware.com/pdf/vsphere4/r41/vsp_41_config_max.pdf. Retrieved 2010-07-13. 
  25. ^ "What's new in VMware vSphere 4: Performance Enhancements" (PDF). VMware, Inc.. http://www.vmware.com/files/pdf/vsphere_performance_wp.pdf. 
  26. ^ "Configuration Maximums for VMware Infrastructure 3" (PDF). VMware. 2007-07-23. http://www.vmware.com/pdf/vi3_301_201_config_max.pdf. Retrieved 2007-09-26. 
  27. ^ "Performance of VMware VMI" (PDF). VMware, Inc.. 2008-02-13. http://www.vmware.com/pdf/VMware_VMI_performance.pdf. Retrieved 2009-01-22. 

External links